TMA PXI¶
Chassis: PXIe-1086
CPU: PXIe-8880
Ethernet cards (x3): PXIe-8234
Compiled code¶
The code generated by the LSST_MainControllerPXI.lvproj
must be copied to the /c/ni-rt/startup
directory.
The content of /c/ni-rt/startup
directory should look like this:
admin@TMA-PXI:/c/ni-rt/startup# ls -lh
total 65216
lrwxrwxrwx 1 admin administ 22 Apr 25 2020 README_File_Paths.txt -> /README_File_Paths.txt
drwxrwxr-x 2 admin administ 4.0K Dec 13 09:54 data/
drwxrwxr-x 3 admin administ 4.0K Dec 13 09:54 project/
drwxrwxr-x 2 admin administ 4.0K Jul 8 10:43 resource/
-rw-r--r-- 1 admin administ 296 Dec 13 09:54 startup.aliases
-rw-r--r-- 1 admin administ 63.7M Dec 13 09:54 startup.rtexe
admin@TMA-PXI:/c/ni-rt/startup#
Configuration files¶
This section explains the location and which are the configuration files needed for this PXI. All the same structure,
the main configuration files are stored in the /c/Configuration
directory, here some are then inside other directories
to make things more clear. But each of them contains the specific configuration files for the code running in it.
TMA PXI /c/Configuration
contents:
admin@TMA-PXI:/c/Configuration# ls -lR
.:
total 36
-rwxr-xr-x 1 admin administ 96 Nov 5 2021 ACWData.ini*
drwxrwxrwx 2 admin administ 4096 Nov 5 2021 CAR_TCP/
-rwxr-xr-x 1 admin administ 95 Nov 5 2021 CCWData.ini*
drwxr-xr-x 2 admin administ 4096 Jun 7 15:27 DiscreteStateReporting/
drwxrwxrwx 2 admin administ 4096 Nov 5 2021 EIB/
drwxrwxrwx 2 admin administ 4096 Nov 5 2021 Safety/
-rwxr-xr-x 1 admin administ 100 Jul 14 11:29 TMA_PXI_RT_MainConfig.ini*
drwxr-xr-x 2 admin administ 4096 Apr 18 2022 TekNSVs/
drwxrwxrwx 2 admin administ 4096 Nov 5 2021 axisManagementComm/
./CAR_TCP:
total 4
-rwxr-xr-x 1 admin administ 574 Nov 18 17:38 CommandTCP_Config.xml*
./DiscreteStateReporting:
total 4
-rwxr-xr-x 1 lvuser ni 377 Nov 10 17:55 DiscreteStateReporting.json*
./EIB:
total 12
-rwxr-xr-x 1 admin administ 11070 Nov 4 16:34 multi_ext.txt*
./Safety:
total 40
-rwxr-xr-x 1 admin administ 23464 May 6 2022 Safety_ModBusMapping.txt*
-rwxr-xr-x 1 admin administ 10231 May 6 2022 Safety_ModBusMapping_ForReadWriteDefinition.txt*
-rwxr-xr-x 1 admin administ 128 Nov 5 2021 ServerConfig.ini*
./TekNSVs:
total 64
-rwxr-xr-x 1 admin administ 575 Nov 18 17:45 ReceiverConfig.xml*
-rwxr-xr-x 1 admin administ 51311 Apr 18 2022 TekNSVvariablesToCreate.json*
-rwxr-xr-x 1 admin administ 542 Apr 5 2022 VariablesToSubscribe.json*
-rwxr-xr-x 1 admin administ 672 Apr 5 2022 VariablesToSubscribeClientConfig.xml*
./axisManagementComm:
total 4
-rwxr-xr-x 1 admin administ 707 Nov 5 2021 SenderConfig.xml*
admin@TMA-PXI:/c/Configuration#
Now each of the files is explained:
ACWData.ini: This file is automatically created if not existent, is used to store the active time of each of the ACW motors.
CCWData.ini: This file is automatically created if not existent, is used to store the active time of each of the CCW motors.
TMA_PXI_RT_MainConfig.ini: This file is automatically created if not existent, is used to define the general configuration. If empty the default values are used, this is the way it is created if nonexistent at boot.
./CAR_TCP/CommandTCP_Config.xml: This file is necessary at boot, here the configuration for the TCP server used to communicate with the MtMountOperationManager is specified. If not found at boot the code won’t startup.
./DiscreteStateReporting/DiscreteStateReporting.json: This file is necessary at boot, here the configuration for the discrete state reporting task is specified. If not found the system will start but it won’t be managing the events properly, so duplicated events for the CSC could appear.
./EIB/multi_ext.txt: This file could be placed at other location, but the setting
EIB config file path
that specifies the location must be updated accordingly../Safety/Safety_ModBusMapping.txt: This file is necessary at boot, here the configuration for the safety modbus mapping (shared variables between the PXI and the PILZ) is defined. If not found at boot the code won’t startup.
./Safety/Safety_ModBusMapping_ForReadWriteDefinition.txt: This file is necessary at boot, here the configuration for the safety variables inside the PXI is defined. If not found at boot the code won’t startup.
./Safety/ServerConfig.ini: This file is necessary at boot, here the configuration for the modbus communication is specified. If not found at boot the code won’t startup.
./TekNSVs/ReceiverConfig.xml: This file is necessary at boot, here the configuration for the TCP server that sends the TekNSV variables to the EUI is specified. If not found at boot the code won’t startup.
./TekNSVs/TekNSVvariablesToCreate.json: This file is necessary at boot, this file defines the TekNSV variables to create just after starting the server, this prevents errors at boot in the EUI when launched too early. If not found at boot the code won’t startup.
./TekNSVs/VariablesToSubscribe.json: This file is necessary at boot, this file defines the TekNSV variables to read from the AUX PXI. If not found at boot the code won’t startup.
./TekNSVs/VariablesToSubscribeClientConfig.xml: This file is necessary at boot, here the configuration for the TCP client to connect to the TekNSV server in the AUX PXI is defined. If not found at boot the code won’t startup.
./axisManagementComm/SenderConfig.xml: This file is necessary at boot, here the configuration for the TCP client to connect to the AXES PXI server to send the low level commands to it. If not found at boot the code won’t startup.
The default configuration for all the necessary files listed here can be found in this repo
inside the ESIFiles
directory.
TMA_PXI_RT_MainConfig¶
As this is the one that has the general information a specific section is created. This file can have multiple sections,
as a *.ini file, it uses [sectionName]
to divide the file.
log
section: here the configuration for the logging is defined.Path: the absolute path for the log files, it needs to have a main file name, a date is going to be added to it. Default value:
/home/lvuser/log/MainLogFile.log
Active: a boolean “FALSE”/“TRUE” to disable/enable the logging. Default value: “TRUE”.
[Log] Path = "/home/lvuser/log/MainTMA.log" Active = "TRUE"
TCPCMDReciver
section: here the configuration for the HHD (hand held device) behavior is defined.HHD Mode To Safety: this is a boolean value of TRUE/FALSE.
If TRUE (default), when the commander is the HHD this information is sent to the TMA IS (safety).
If FALSE, no information of the commander is sent to the TMA IS (safety).
[TCPCMDReciver] HHD Mode To Safety = FALSE
Settings Database
section: here the configuration for connecting to the database is defined.IP: the ip for the MCC machine that contains the database. Default: “192.168.209.200”
Port: the port to connect to the database. Default: 3306
Timeout: the timeout for the connect in ms. Default: 500
ReadTimeout: the timeout for reading from the database in ms. Default: 500
UserName: the user name to connect to the database. Default: “root”
Password: the password to connect to the database. The default is the password for connecting to the database.
DataBase: the name of the database to connect to. Default: “lsst_settings”
[Settings Database] IP = "192.168.209.200" Port = 3306 Timeout = 500 ReadTimeout = 500 UserName = "root" Password = "defaultPasswordValue" DataBase = "lsst_settings"
IPs
section: here the IPs for connecting to the different device targets are defined.tmaPxiIp: specify the IP of the TMA PXI here, if not defined the default value will be used. Default: 192.168.209.10.
auxPxiIp: specify the IP of the AUX PXI here, if not defined the default value will be used. Default: 192.168.209.11.
axesPxiIp: specify the IP of the AXES PXI here, if not defined the default value will be used. Default: 192.168.213.11.
tmaIsIp: specify the IP of the TMA IS (safety PLC CPU module) here, if not defined the default value will be used. Default: 192.168.180.10.
mcc: specify the IP of the MCC here, if not defined the default value will be used. Default: 192.168.209.200.
[IPs] tmaPxiIp = 139.229.171.3 auxPxiIp = 139.229.171.4 axesPxiIp = 139.229.171.26 tmaIsIp = 192.168.180.10 mcc = 139.229.171.6
Libraries¶
The shared libraries (SO) used by the code must be stored in /usr/local/lib
.
TMA PXI /usr/local/lib
contents:
admin@TMA-PXI:/usr/local/lib# ls -l
total 22020
-rwxr-xr-x 1 admin administ 7397619 Feb 15 2022 32libmysqlclient.so*
-rwxr-xr-x 1 admin administ 8538815 Feb 15 2022 64libmysqlclient.so*
-rwxr-xr-x 1 admin administ 1182414 Feb 15 2022 EIB8Driver32.so*
-rwxr-xr-x 1 admin administ 1182414 Feb 15 2022 libEIB8Driver.so*
-rwxr-xr-x 1 admin administ 11128 Feb 15 2022 libGetClocks.so*
-rwxr-xr-x 1 admin administ 77770 Feb 15 2022 libaci.so*
-rwxr-xr-x 1 admin administ 2273440 Feb 15 2022 libcrypto.so.1.0.0*
-rwxr-xr-x 1 admin administ 1324454 Feb 15 2022 libmlpi.so*
-rwxr-xr-x 1 admin administ 517200 Feb 15 2022 libssl.so.1.0.0*
-rwxr-xr-x 1 admin administ 13672 Feb 15 2022 libtrajectory.so*
-rwxr-xr-x 1 admin administ 7824 Feb 15 2022 lvimptsl.so*
admin@TMA-PXI:/usr/local/lib#